package main

import (
	"fmt"
	"net"
	"time"
)

func ReadConn(conn net.Conn) {
	// 保证网络连接一定能够被关闭
	defer conn.Close()
	for {
		buf := make([]byte, 1024)

		// 设置读取超时时间为1秒钟后
		conn.SetReadDeadline(time.Now().Add(1 * time.Second))
		_, err := conn.Read(buf)
		if err != nil {
			fmt.Println(currentTime(), "服务端读取失败：", err.Error())
			return
		}
		fmt.Println(currentTime(), " 从客户端读取到的数据：", string(buf))
	}
}

//func currentTime() string {
//	return time.Now().Format("2006-01-02 15:04:05.000")
//}

func main11() {
	// 监听本机8888端口
	l, err := net.Listen("tcp", ":8888")
	if err != nil {
		fmt.Println("TCP监听错误：", err.Error())
	}

	// 循环获取网络连接，并利用子协程从网络连接中读取数据
	for {
		conn, err := l.Accept()
		if err != nil {
			fmt.Println("建立连接失败：", err.Error())
			return
		}
		go ReadConn(conn)
	}
}
